Иерархия геометрических классов
Спецификация OpenGIS предусматривает следующую иерархию геометрических классов:
-
Geometry
-
Point
-
Curve
-
LineString
-
LinearRing
-
-
-
Surface
-
Polygon
-
-
GeometryCollection
-
MultiPoint
-
MultiCurve
-
MultiLineString
-
-
MultiSurface
-
MultiPolygon
-
-
-
Класс Geometry – базовый класс (неинстанцируемый). Инстанцируемые подклассы Geometry ограничены размерностью 0, 1 и 2 и существуют в двумерном координатном пространстве. Все объекты инстанцируемых классов предполагаются топологически замкнутыми (то есть каждый объект включает собственную границу).
Подклассами Geometry являются классы:
-
размерности 0 – точка (Point);
-
размерности 1 – кривая (Curve) и ее подкласс LineString с подклассом LinearRing;
-
размерности 2 – поверхность (Surface) и ее подкласс Polygon;
-
составных объектов – набор объектов (GeometryCollection):
-
размерности 0 – MultiPoint (набор классов Point);
-
размерности 1 – MultiLineString (набор классов LineString);
-
размерности 2 – MultiPolygon (набор классов Polygon).
-
Примечание
Подклассы MultiCurve и MultiSurface введены как абстрактные суперклассы для обобщения интерфейсов подклассов Curve и Surface соответственно.
Geometry, Curve, Surface, MultiCurve и MultiSurface определены как неинстанцируемые классы. Они определяют общий набор методов для своих подклассов.
Point, LineString, Polygon, GeometryCollection, MultiPoint, MultiLineString, MultiPolygon являются инстанцируемыми классами (в иерархии объектов выделены жирным шрифтом).